/*
 *
 * TransGantryEtc.java Copyright(C) 2019-2020 YXY - 北京云星宇交通科技股份有限公司
 * 
 * @date 2019-11-11
 */
package com.yxy.ms.manager.entity.po;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class TransGantryEtc extends ClearDataTemp implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 4809737554549642244L;

    /**
     * 通知消息号
     */
    private String msgId;

    /**
     * 计费交易编号（唯一索引）
     */
    private String tradeId;

    /**
     * 门架编号
     */
    private Integer gantryId;

    /**
     * 控制器序号
     */
    private Integer computerOrder;

    /**
     * 小时批次号
     */
    private Integer hourBatchNo;

    /**
     * 门架顺序号
     */
    private Integer gantryOrderNum;

    /**
     * 当前门架hex值
     */
    private String gantryHex;

    /**
     * 对向门架hex值
     */
    private String gantryHexOpposite;

    /**
     * 计费交易时间
     */
    private Date transTime;

    /**
     * 应收金额
     */
    private Long payFee;

    /**
     * 交易金额
     */
    private Long fee;

    /**
     * 优惠金额
     */
    private Long discountFee;

    /**
     * 卡面扣费金额
     */
    private Long transFee;

    /**
     * 1-obu(单片式、双片式) 2-cpc卡 默认值：0
     */
    private Integer mediaType;

    /**
     * obu单/双片标识
     */
    private Integer obuSign;

    /**
     * 收费单元编号组合
     */
    private String tollIntervalId;

    /**
     * 应收金额组合
     */
    private String payFeeGroup;

    /**
     * 交易金额
     */
    private String feeGroup;

    /**
     * 优惠金额组合
     */
    private String discountFeeGroup;

    /**
     * 计费车辆车牌号码
     */
    private String vehicleNo;

    /**
     * 计费车辆颜色
     */
    private Integer vehicleColor;

    /**
     * 计费车型
     */
    private Integer vehicleType;

    /**
     * 识别的车型
     */
    private Integer identifyVehicleType;

    /**
     * 车种
     */
    private Integer vehicleClass;

    /**
     * tac码
     */
    private String tac;

    /**
     * 交易类型标识
     */
    private String transType;

    /**
     * 终端机编号
     */
    private String terminalNo;

    /**
     * psam卡脱机交易序列号
     */
    private String terminalTransNo;

    /**
     * ic卡交易序号
     */
    private Long transNo;

    /**
     * 交易的服务类型
     */
    private Integer serviceType;

    /**
     * 算法标识
     */
    private Integer algorithmIdentifier;

    /**
     * 消费密钥版本号
     */
    private String keyVersion;

    /**
     * 天线ID编号
     */
    private Integer antennaId;

    /**
     * 计费模块和计费参数版本号
     */
    private String rateVersion;

    /**
     * 交易耗时
     */
    private Integer consumeTime;

    /**
     * 通行状态
     */
    private Integer passState;

    /**
     * 入口车道编号
     */
    private String enTollLaneId;

    /**
     * 入口收费站hex字符串
     */
    private String enTollStationHex;

    /**
     * 入口交易发生的时间
     */
    private Date enTime;

    /**
     * 入口车道类型
     */
    private Integer enLaneType;

    /**
     * 通行标识id
     */
    private String passId;

    /**
     * 上一个门架编号
     */
    private Integer lastGantryId;

    /**
     * 上一个门架的 hex编号
     */
    private String lastGantryHex;

    /**
     * 通过上一个门架的时间
     */
    private Date lastGantryTime;

    /**
     * obu/cpc物理地址
     */
    private String obuMac;

    /**
     * obu/cpc发行方标识
     */
    private String obuIssueId;

    /**
     * obu/cpc 序号编码
     */
    private String obuSn;

    /**
     * OBU/CPC 版本号
     */
    private Integer obuVersion;

    /**
     * OBU/CPC起始日期
     */
    private Integer obuStartDate;

    /**
     * OBU/CPC截止日期
     */
    private Integer obuEndDate;

    /**
     * obu/cpc卡电量百分比
     */
    private BigDecimal obuElectrical;

    /**
     * OBU/CPC 状态
     */
    private Integer obuState;

    /**
     * OBU 内车牌号码
     */
    private String obuVehicleNo;

    /**
     * OBU 内车牌颜色
     */
    private Integer obuVehicleColor;

    /**
     * OBU 内车型
     */
    private Integer obuVehicleType;

    /**
     * 车辆用户类型
     */
    private Integer vehicleUserType;

    /**
     * 车辆座位数/载重
     */
    private Integer vehicleSeat;

    /**
     * 车轴数
     */
    private Integer axleCount;

    /**
     * 车货总重
     */
    private Integer totalWeight;

    /**
     * 车辆长
     */
    private Integer vehicleLength;

    /**
     * 车辆宽
     */
    private Integer vehicleWidth;

    /**
     * 车辆高
     */
    private Integer vehicleHight;

    /**
     * CPU卡片网络编号
     */
    private String cpuNetId;

    /**
     * CPU卡片发行方标识
     */
    private String cpuIssueId;

    /**
     * cpu 内车牌号码
     */
    private String cpuVehicleNo;

    /**
     * cpu内车牌颜色
     */
    private Integer cpuVehicleColor;

    /**
     * cpu 内车型
     */
    private Integer cpuVehicleType;

    /**
     * cpu 起始日期
     */
    private Integer cpuStartDate;

    /**
     * cpu 截止日期
     */
    private Integer cpuEndDate;

    /**
     * CPU用户卡版本号
     */
    private Integer cpuVersion;

    /**
     * cpu卡类别
     */
    private Integer cpuCardType;

    /**
     * cpu卡编号
     */
    private String cpuCardId;

    /**
     * 交易前余额
     */
    private Long balanceBefore;

    /**
     * 交易后余额
     */
    private Long balanceAfter;

    /**
     * cpc 卡过站信息数量
     */
    private Integer gantryPassCount;

    /**
     * cpc 卡的过站信息
     */
    private String gantryPassInfo;

    /**
     * cpc 卡省内计费信息
     */
    private String feeProvInfo;

    /**
     * cpc 卡本省费用累计前金额
     */
    private Long feeSumLocalBefore;

    /**
     * cpc 卡本省费用累计后金额
     */
    private Long feeSumLocalAfter;

    /**
     * 计费接口特情值
     */
    private Integer feeCalcResult;

    /**
     * 计费信息1
     */
    private String feeInfo1;

    /**
     * 计费信息2
     */
    private String feeInfo2;

    /**
     * 计费信息3
     */
    private String feeInfo3;

    /**
     * 节假日状态
     */
    private Integer holidayState;

    /**
     * 交易结果
     */
    private Integer tradeResult;

    /**
     * 特情类型
     */
    private String specialType;

    /**
     * 校验码
     */
    private String verifyCode;

    /**
     * 干扰信号
     */
    private Integer interruptSignal;

    /**
     * 车牌识别流水号
     */
    private String vehiclePicId;

    /**
     * 车牌识别流水号（车尾）
     */
    private String vehicleTailPicId;

    /**
     * 匹配结果
     */
    private Integer matchStatus;

    /**
     * 去重状态
     */
    private Integer validStatus;

    /**
     * 处理状态
     */
    private Integer dealStatus;

    /**
     * 成功关联流水号
     */
    private String relatedTradeId;

    /**
     * 全部关联流水号
     */
    private String allRelatedTradeId;

    /**
     * 门架后台入库时间
     */
    private Date stationDbTime;

    /**
     * 门架后台处理时间
     */
    private Date stationDealTime;

    /**
     * 门架后台去重时间
     */
    private Date stationValidTime;

    /**
     * 门架后台匹配时间
     */
    private Date stationMatchTime;

    /**
     * 识别车牌
     */
    private String identifyNo;

    /**
     * 识别车辆颜色
     */
    private Integer identifyColor;

    /**
     * 门架类型
     */
    private Integer gateType;

    /**
     * 分中心ID
     */
    private Integer centerId;

    /**
     * 类型
     */
    private Integer dataType;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 最后处理时间
     */
    private Date lastProcessTime;

    // /**
    // * 处理结果
    // */
    // private Integer processResult;

    /**
     * 处理原因
     */
    private Integer processReason;

    // /**
    // * 所属包号
    // */
    // private Long packageNo;

    // /**
    // * 包中的顺序号
    // */
    // private Integer transId;

    /**
     * 清分目标日
     */
    private Date clearTargetDate;

    /**
     * 清分统计日
     */
    private Date processDate;

    /**
     * 争议包号
     */
    private Long fileId;

    /**
     * 退费文件Id
     */
    private Long refundId;

    /**
     * 补交文件Id
     */
    private Long restitutionId;

    /**
     * 应收封帐的班次索引
     */
    private Integer branchShiftindex;

    /**
     * 实收封帐的班次索引
     */
    private Integer centerShiftindex;

    /**
     * 拆分状态
     */
    private Integer splitFlag;

    /**
     * 是否承载门架
     */
    private Integer bearFlag;

    // /**
    // * 1- 车辆入口通行记录数据
    // */
    // private TransEntrance enPassRecordData;
    // /**
    // * 2- 车辆入口通行识别图像数据
    // */
    // private VehiclePic enPassRecordPIC;
    // /**
    // * 3 - 车牌识别数据
    // */
    // private VehicleData vehicleData;
    // /**
    // * 4- 车牌识别图像数据
    // */
    // private VehiclePic vehiclePic;
    // /**
    // * 5- 车辆在上游门架通行记录数据
    // */
    // private ForwardETCrecordData forwardETCrecordData;
    // /**
    // * 6- 车辆在上游门架通行识别图像数据
    // */
    // private ForwardETCrecordPIC forwardETCrecordPIC;
    // /**
    // * 7- 车辆在下游ETC门架通行记录编号
    // */
    // private BackwardETCrecordData backwardETCrecordData;
    // /**
    // * 8- 车辆在下游门架通行识别图像数据
    // */
    // BackwardETCrecordPIC backwardETCrecordPIC;
    //
    // /**
    // * <函数描述> 实际收费车辆好牌 + 颜色
    // *
    // * @return
    // */
    // public String getVehicleId(String defaultVeh) {
    // if (StringUtils.isEmpty(this.obuVehicleNo) || this.obuVehicleColor == null
    // || this.vehicleNo.equals(Constant.DEFALUT_VEHICLE)) {
    // return defaultVeh;
    // }
    // return this.obuVehicleNo + "_" + this.obuVehicleColor;
    // }
    //
    // /**
    // * <函数描述> 实际收费车辆好牌 + 颜色
    // *
    // * @return
    // */
    // public String getVehicleId() {
    // if (StringUtils.isEmpty(this.obuVehicleNo) || this.obuVehicleColor == null) {
    // return Constant.DEFALUT_VEHICLE_ID_7;
    // }
    //
    // if (this.vehicleNo.equals(Constant.DEFALUT_VEHICLE)) {
    // return Constant.DEFALUT_VEHICLE_ID_7;
    // }
    // return this.obuVehicleNo + "_" + this.obuVehicleColor;
    // }
    //
    // /***
    // * <函数描述> 车牌识别数据 -识别车牌
    // *
    // * @return
    // */
    // public String getVehicleSignDataVehicleId() {
    // if (StringUtils.isEmpty(this.obuVehicleNo) || this.obuVehicleColor == null) {
    // return Constant.DEFALUT_VEHICLE_ID;
    // }
    //
    // if (this.vehicleNo.equals(Constant.DEFALUT_VEHICLE)) {
    // return Constant.DEFALUT_VEHICLE_ID;
    // }
    // return this.obuVehicleNo + "_" + this.obuVehicleColor;
    // }
    //
    // /**
    // * <函数描述> 门架识别的车牌号码+颜色
    // *
    // * @return
    // */
    // public String getIdentifyVehicleId() {
    // if (StringUtils.isEmpty(this.vehicleNo) || this.vehicleColor == null) {
    // return Constant.DEFALUT_VEHICLE_ID;
    // }
    //
    // if (this.vehicleNo.equals(Constant.DEFALUT_VEHICLE)) {
    // return Constant.DEFALUT_VEHICLE_ID;
    // }
    //
    // return this.vehicleNo + "_" + this.vehicleColor;
    // }

    /**
     * <函数描述> 交易描述
     * 
     * @return
     */
    public String getDescription() {
        return "暂未给出交易的相关描述信息";
    }

    // /**
    // * <函数描述> 车牌识别数据经校核标识（transTypeCode = 3）
    // *
    // * @return
    // */
    // public Integer getManualSign() {
    // if (status == 0 && dataType == 2) {
    // return 1;
    // } else if (status == 2 && (dataType == 2 || dataType == 3)) {
    // return 2;
    // }
    // return null;
    // }

    public String getLink() {
        // TODO Auto-generated method stub
        return null;
    }

    /**
     * <函数描述> 车牌识别数据经校核标识（transTypeCode = 3）
     * 
     * @return
     */
    public Integer getManualSign() {
        if (this.status == 0) {
            return 1;
        } else if (this.status == 2) {
            return 2;
        }
        return null;
    }

    /**
     * <函数描述> 标记状态（transTypeCode = 3）
     * 
     * @return
     */
    public String getSignStatus() {
        return null;
    }

}